The present invention relates to a messaging system that provides flexible messaging attributes.
Messaging systems assign certain attributes to messages they process. For example, many messaging systems assign an attribute representing the time of arrival. Some attributes may be assigned depending upon the type of the message. For example, a sender attribute may be assigned if the message type is such that the sender is known. An email message may, in addition, have attributes representing the subject of the message, the organization of the sender, etc.
In conventional messaging systems, the sets of attributes are fixed. For example, an email message may have a time of arrival attribute and a subject attribute. This set of attributes is fixed; additional attributes cannot be added. Likewise, the manner in which the attribute values are obtained is fixed. For example, the time of arrival attribute is obtained from the system timer, while the subject attribute is manually input by the user. These arrangements cannot be changed. Finally, the entity types to which attributes are assigned are fixed.
As messaging systems evolve to be capable of processing arbitrary message types for applications which may not yet have been defined, the fixed approach becomes very restrictive. A need arises for a messaging system in which attribute types may be easily defined or modified, the manner in which attribute values are obtained may be easily defined or modified, and the entity types to which attributes are assigned may be easily defined or modified.
The present invention is a messaging system which allows new messaging services to be easily implemented on top of a core messaging infrastructure. The core messaging infrastructure stores and manages messaging attributes, but only includes a small set of pre-defined attributes. Additional attributes may be defined by messaging applications external to the core infrastructure. The external applications may easily define or modify the attributes they have defined. The manner in which attribute values are obtained may be easily defined or modified and the entity types to which attributes are assigned may be easily defined or modified by applications themselves.
The present invention includes a plurality of messaging entities, such as messages, folders, and users, a plurality of attributes associated with the messaging entities, and a plurality of applications. Each application is operable to examine and modify at least some of the messaging entities and attributes. An application selection device is operable to examine at least some of the messaging entities and at least some of the attributes and to select an application to be invoked, from among the plurality of applications, based on values of the examined messaging entities and attributes. An application invocation device invokes the selected application.
The applications may define and modify a type of an attribute and/or may define and modify an association of an attribute with a messaging entity.